package com.fy.fyspace.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fy.fyspace.common.result.R;
import com.fy.fyspace.model.dto.outpainting.CreatePictureOutPaintingTaskDTO;
import com.fy.fyspace.model.entity.Aipicture;
import com.fy.fyspace.model.vo.outpainting.CreateOutPaintingTaskVO;
import com.fy.fyspace.model.vo.outpainting.GetOutPaintingTaskVO;
import com.fy.fyspace.model.vo.user.UserSessionVO;

/**
 * AI服务接口
 * author fwq
 * 提供AI图片处理相关功能
 */
public interface AIService extends IService<Aipicture> {

  /**
   * 创建 AI 扩图任务
   *
   * @param request   创建扩图任务请求参数
   * @param loginUser 当前登录用户信息
   * @return 创建的扩图任务信息
   */
  CreateOutPaintingTaskVO createPictureOutPaintingTask(CreatePictureOutPaintingTaskDTO request,
      UserSessionVO loginUser);

  /**
   * 获取 AI 扩图任务进度
   *
   * @param taskId 任务ID
   * @return 任务进度信息
   */
  GetOutPaintingTaskVO getOutpaintingTaskStatus(String taskId);

  /**
   * 获取AI生成的图片列表
   */
  R getAIPictures(Integer page, Integer pageSize, String prompt);

  /**
   * 获取AI任务列表
   */
  R getAITasks(Integer page, Integer pageSize, String prompt, String taskStatus);

  /**
   * 删除AI图片
   * @param ids AI图片ID字符串，多个ID用逗号分隔
   * @return 删除结果
   */
  R deleteAIPictures(String ids);
}